home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Text⁄Files / Writeswell Jr. 1.0.2 Master / WSI Library Source / TrapAvail.c < prev    next >
Text File  |  1992-04-23  |  1KB  |  57 lines

  1. /* TrapAvail.c
  2.  * Determine whether a macintosh trap is available.
  3.  * ©1992 Working Software, Inc.
  4.  * This source code is copyrighted.  Permission is granted to use the Word Services
  5.  * portion of the Writeswell Jr. source code in your own programs, but you 
  6.  * may not distribute the Writeswell Jr. word-processor code as a 
  7.  * commercial product.  If you modify the code, please do not call it 
  8.  * Writeswell Jr. (or Writeswell.)  This will ensure that people understand the 
  9.  * program and don’t have to deal with a number of different versions with 
  10.  * who-knows-what going on in the code.
  11.  * 
  12.  * Writeswell Jr. and Writeswell are trademarks of Working Software, Inc.
  13.  * 30 Jul 91 Mike Crawford
  14.  */
  15.  
  16. #include <Traps.h>
  17. #include "TrapAvail.h"
  18.  
  19. #define kTrapMask 0x0800
  20.  
  21. Boolean TrapAvailable( short theTrap )
  22. {
  23.     TrapType tType;
  24.     Boolean result;
  25.     
  26.     tType = GetTrapType( theTrap );
  27.     
  28.     if ( tType == ToolTrap ){
  29.         theTrap = theTrap && 0x07ff;
  30.         if ( theTrap > NumToolBoxTraps() )
  31.             return false;
  32.     }
  33.     
  34.     result = NGetTrapAddress( theTrap, tType ) !=
  35.         NGetTrapAddress( _Unimplemented, ToolTrap );
  36.     
  37.     return result;
  38. }/* TrapAvailable */
  39.  
  40. short NumToolBoxTraps( void )
  41. {
  42.     if ( NGetTrapAddress( _InitGraf, ToolTrap ) ==
  43.             NGetTrapAddress( 0xAA6E, ToolTrap ) )
  44.         return 0x200;
  45.     
  46.     return 0x400;
  47. }/* NumToolBoxTraps */
  48.  
  49. TrapType GetTrapType( short theTrap )
  50. {
  51.     if ( ( theTrap && kTrapMask ) > 0 )    
  52.         return ToolTrap;
  53.     
  54.     return OSTrap;
  55.  
  56. }/* GetTrapType */
  57.